From a7ac5157d072913d24ca407c47923184c5638ccd Mon Sep 17 00:00:00 2001 From: BST 2000 Tony Gale Date: Fri, 21 Jul 2000 13:26:25 +0000 Subject: [PATCH] Minor updates Fri Jul 21 14:23:51 BST 2000 Tony Gale * docs/tutorial/gtk-tut.sgml: Minor updates * docs/tutorial/*.jpg *.eps: Screenshots for tutorial --- ChangeLog | 6 + ChangeLog.pre-2-0 | 6 + ChangeLog.pre-2-10 | 6 + ChangeLog.pre-2-2 | 6 + ChangeLog.pre-2-4 | 6 + ChangeLog.pre-2-6 | 6 + ChangeLog.pre-2-8 | 6 + docs/tutorial/gtk-tut.sgml | 406 +++++----- docs/tutorial/gtk_tut_packbox1.eps | 1111 ++++++++++++++++++++++++++++ docs/tutorial/gtk_tut_packbox1.jpg | Bin 0 -> 25975 bytes docs/tutorial/gtk_tut_packbox2.eps | 1042 ++++++++++++++++++++++++++ docs/tutorial/gtk_tut_packbox2.jpg | Bin 0 -> 21958 bytes docs/tutorial/gtk_tut_table.eps | 654 ++++++++++++++++ docs/tutorial/gtk_tut_table.jpg | Bin 0 -> 4315 bytes 14 files changed, 3052 insertions(+), 203 deletions(-) create mode 100644 docs/tutorial/gtk_tut_packbox1.eps create mode 100644 docs/tutorial/gtk_tut_packbox1.jpg create mode 100644 docs/tutorial/gtk_tut_packbox2.eps create mode 100644 docs/tutorial/gtk_tut_packbox2.jpg create mode 100644 docs/tutorial/gtk_tut_table.eps create mode 100644 docs/tutorial/gtk_tut_table.jpg diff --git a/ChangeLog b/ChangeLog index 5ce13a710e..ce6fc76628 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Fri Jul 21 14:23:51 BST 2000 Tony Gale + + * docs/tutorial/gtk-tut.sgml: Minor updates + + * docs/tutorial/*.jpg *.eps: Screenshots for tutorial + 2000-07-19 Tor Lillqvist * gtk/gtksignal.c: Fix C++ comment. diff --git a/ChangeLog.pre-2-0 b/ChangeLog.pre-2-0 index 5ce13a710e..ce6fc76628 100644 --- a/ChangeLog.pre-2-0 +++ b/ChangeLog.pre-2-0 @@ -1,3 +1,9 @@ +Fri Jul 21 14:23:51 BST 2000 Tony Gale + + * docs/tutorial/gtk-tut.sgml: Minor updates + + * docs/tutorial/*.jpg *.eps: Screenshots for tutorial + 2000-07-19 Tor Lillqvist * gtk/gtksignal.c: Fix C++ comment. diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 5ce13a710e..ce6fc76628 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,9 @@ +Fri Jul 21 14:23:51 BST 2000 Tony Gale + + * docs/tutorial/gtk-tut.sgml: Minor updates + + * docs/tutorial/*.jpg *.eps: Screenshots for tutorial + 2000-07-19 Tor Lillqvist * gtk/gtksignal.c: Fix C++ comment. diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2 index 5ce13a710e..ce6fc76628 100644 --- a/ChangeLog.pre-2-2 +++ b/ChangeLog.pre-2-2 @@ -1,3 +1,9 @@ +Fri Jul 21 14:23:51 BST 2000 Tony Gale + + * docs/tutorial/gtk-tut.sgml: Minor updates + + * docs/tutorial/*.jpg *.eps: Screenshots for tutorial + 2000-07-19 Tor Lillqvist * gtk/gtksignal.c: Fix C++ comment. diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index 5ce13a710e..ce6fc76628 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,9 @@ +Fri Jul 21 14:23:51 BST 2000 Tony Gale + + * docs/tutorial/gtk-tut.sgml: Minor updates + + * docs/tutorial/*.jpg *.eps: Screenshots for tutorial + 2000-07-19 Tor Lillqvist * gtk/gtksignal.c: Fix C++ comment. diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index 5ce13a710e..ce6fc76628 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,9 @@ +Fri Jul 21 14:23:51 BST 2000 Tony Gale + + * docs/tutorial/gtk-tut.sgml: Minor updates + + * docs/tutorial/*.jpg *.eps: Screenshots for tutorial + 2000-07-19 Tor Lillqvist * gtk/gtksignal.c: Fix C++ comment. diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 5ce13a710e..ce6fc76628 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,9 @@ +Fri Jul 21 14:23:51 BST 2000 Tony Gale + + * docs/tutorial/gtk-tut.sgml: Minor updates + + * docs/tutorial/*.jpg *.eps: Screenshots for tutorial + 2000-07-19 Tor Lillqvist * gtk/gtksignal.c: Fix C++ comment. diff --git a/docs/tutorial/gtk-tut.sgml b/docs/tutorial/gtk-tut.sgml index fc16fa0287..8d9bbf9299 100755 --- a/docs/tutorial/gtk-tut.sgml +++ b/docs/tutorial/gtk-tut.sgml @@ -2,7 +2,7 @@ - July 18th 2000 + July 21st 2000 GTK+ 1.2 Tutorial @@ -233,7 +233,7 @@ When control reaches this point, GTK will sleep waiting for X events occur. In our simple example, however, events are ignored. - + Hello World in GTK Now for a program with a widget (a button). It's the classic @@ -402,7 +402,7 @@ purposes. - + Theory of Signals and Callbacks Before we look in detail at helloworld, we'll discuss signals @@ -486,7 +486,7 @@ data supplied to the callbacks. - + Events In addition to the signal mechanism described above, there is a set @@ -646,7 +646,7 @@ propagation process. - + Stepping Through Hello World Now that we know the theory behind this, let's clarify by walking @@ -869,7 +869,7 @@ callback, exiting GTK. Moving On - + Data Types There are a few things you probably noticed in the previous examples @@ -890,7 +890,7 @@ is an object. - + More on Signal Handlers Lets take another look at the gtk_signal_connect declaration. @@ -947,7 +947,7 @@ void gtk_signal_handler_unblock_by_data( GtkObject *object, - + An Upgraded Hello World Let's take a look at a slightly improved helloworld with @@ -1081,7 +1081,7 @@ into a window, how do you control where that widget is positioned? This is where packing comes in. - + Theory of Packing Boxes Most packing is done by creating boxes as in the example above. These @@ -1115,7 +1115,7 @@ placing and creating widgets. - + Details of Boxes Because of this flexibility, packing boxes in GTK can be confusing at @@ -1126,7 +1126,7 @@ different styles. - + @@ -1188,7 +1188,7 @@ following figure should make it clearer: - + @@ -1203,7 +1203,7 @@ it. Compile it yourself and play with it. - + Packing Demonstration Program @@ -1505,7 +1505,7 @@ int main( int argc, - + Packing Using Tables Let's take a look at another way of packing - Tables. These can be @@ -1655,7 +1655,7 @@ any spacing. - + Table Packing Example Here we make a window with three buttons in a 2x2 table. @@ -1666,7 +1666,7 @@ Which means it should look something like this: - + @@ -1816,8 +1816,8 @@ children of a widget (a window is a widget too) will not be displayed until the window itself is shown using the gtk_widget_show() function. - - Casting + +Casting You'll notice as you go on that GTK uses a type casting system. This is always done using macros that both test the ability to cast the @@ -1865,7 +1865,7 @@ learn how a widget works just by looking at the function declarations. - + Widget Hierarchy For your reference, here is the class hierarchy tree used to implement widgets. @@ -1969,7 +1969,7 @@ learn how a widget works just by looking at the function declarations. - + Widgets Without Windows The following widgets do not have an associated window. If you want to @@ -2009,7 +2009,7 @@ gtk/testgtk.c. The Button Widget - + Normal Buttons We've almost seen all there is to see of the button widget. It's @@ -2178,8 +2178,8 @@ released within Button widget - - Toggle Buttons + +Toggle Buttons Toggle buttons are derived from normal buttons and are very similar, except they will always be in one of two states, alternated by a @@ -2254,8 +2254,8 @@ void gtk_toggle_button_toggled (GtkToggleButton *toggle_button); - - Check Buttons + +Check Buttons Check buttons inherit many properties and functions from the the toggle buttons above, but look a little different. Rather than being @@ -2474,7 +2474,7 @@ that incorporate them: Scrolled Windows, and others. - + Creating an Adjustment Many of the widgets which use adjustment objects do so automatically, @@ -2506,8 +2506,8 @@ usually non-zero. - - Using Adjustments the Easy Way + +Using Adjustments the Easy Way The adjustable widgets can be roughly divided into those which use and require specific units for these values and those which treat them as @@ -2549,8 +2549,8 @@ widget? Of course it will! Just like this: - - Adjustment Internals + +Adjustment Internals Ok, you say, that's nice, but what if I want to create my own handlers to respond when the user adjusts a range widget or a spin button, and @@ -2675,7 +2675,7 @@ trough. When the user manipulates the slider, the range widget will change the value of the adjustment. - + Scrollbar Widgets These are your standard, run-of-the-mill scrollbars. These should be @@ -2706,8 +2706,8 @@ widget. - - Scale Widgets + +Scale Widgets Scale widgets are used to allow the user to visually select and manipulate a value within a specific range. You might want to use a @@ -2809,7 +2809,7 @@ of all widgets that interest you, - + Common Range Functions The Range widget class is fairly complicated internally, but, like @@ -2895,7 +2895,7 @@ gtk_signal_emit_by_name (GTK_OBJECT (adjustment), "changed"); - + Key and Mouse bindings All of the GTK range widgets react to mouse clicks in more or less @@ -2943,7 +2943,7 @@ and Control-Page Down. - Horizontal Range Widgets +Horizontal Range Widgets The left and right arrow keys work as you might expect in these widgets, moving the slider back and forth by step_increment. The @@ -2957,7 +2957,7 @@ while for HScrollbar, it's done with Control-Home and - + Example This example is a somewhat modified version of the "range controls" @@ -3275,7 +3275,7 @@ window. Miscellaneous Widgets - + Labels Labels are used a lot in GTK, and are relatively simple. Labels emit @@ -3465,7 +3465,7 @@ int main( int argc, - + Arrows The Arrow widget draws an arrowhead, facing in a number of possible @@ -3588,7 +3588,7 @@ int main( int argc, - + The Tooltips Object These are the little text strings that pop up when you leave your @@ -4122,8 +4122,8 @@ int main( int argc, - - Dialogs + +Dialogs The Dialog widget is very simple, and is actually just a window with a few things pre-packed into it for you. The structure for a Dialog is: @@ -4649,7 +4649,7 @@ makes the application terminate. - + Rulers Ruler widgets are used to indicate the location of the mouse pointer @@ -4821,7 +4821,7 @@ int main( int argc, - + Statusbars Statusbars are simple widgets used to display a text message. They @@ -4959,7 +4959,7 @@ int main( int argc, - + Text Entries The Entry widget allows text to be typed and displayed in a single line @@ -5152,7 +5152,7 @@ int main( int argc, - + Spin Buttons The Spin Button widget is generally used to allow the user to select a @@ -5623,7 +5623,7 @@ int main( int argc, - + Combo Box The combo box is another fairly simple widget that is really just a @@ -5795,7 +5795,7 @@ appropriate Item. Frankly, I have no idea how to do that. - + Calendar The Calendar widget is an effective way to display and retrieve @@ -6383,8 +6383,8 @@ int main(int argc, - - Color Selection + +Color Selection The color selection widget is, not surprisingly, a widget for interactive selection of colors. This composite widget lets the user @@ -6639,7 +6639,7 @@ gint main( gint argc, - + File Selections The file selection widget is a quick and simple way to display a File @@ -6846,7 +6846,7 @@ int main( int argc, - + The Alignment widget The alignment widget allows you to place a widget within its window at @@ -6891,7 +6891,7 @@ the Progress Bar widget. - + Fixed Container The Fixed container allows you to place widgets at a fixed position @@ -7005,8 +7005,8 @@ int main( int argc, - - Layout Container + +Layout Container The Layout container is similar to the Fixed container except that it implements an infinite (where infinity is less than 2^32) scrolling @@ -7196,8 +7196,8 @@ int main( int argc, - - Aspect Frames + +Aspect Frames The aspect frame widget is like a frame widget, except that it also enforces the aspect ratio (that is, the ratio of the width to the @@ -7286,7 +7286,7 @@ int main( int argc, - + Paned Window Widgets The paned window widgets are useful when you want to divide an area @@ -7702,7 +7702,7 @@ the default size of the window or other widgets. - + Button Boxes Button Boxes are a convenient way to quickly layout a group of @@ -7897,7 +7897,7 @@ int main( int argc, - + Toolbar Toolbars are usually used to group some number of widgets in order to @@ -8338,8 +8338,8 @@ static char * gtk_xpm[] = { - - Notebooks + +Notebooks The NoteBook Widget is a collection of "pages" that overlap each other, each page contains different information with only one page @@ -8686,7 +8686,7 @@ optionally have a title, which itself is optionally active, allowing us to bind a function to its selection. - + Creating a CList widget Creating a CList is quite straightforward, once you have learned @@ -8720,7 +8720,7 @@ functionality. This is a change from the GTK 1.0 implementation. - + Modes of operation There are several attributes that can be used to alter the behaviour of @@ -8780,7 +8780,7 @@ void gtk_clist_set_shadow_type( GtkCList *clist, - + Working with titles When you create a CList widget, you will also get a set of title @@ -8846,7 +8846,7 @@ void gtk_clist_set_column_widget( GtkCList *clist, - + Manipulating the list itself It is possible to change the justification for a column, and it is @@ -8966,7 +8966,7 @@ void gtk_clist_set_background( GtkCList *clist, - + Adding rows to the list We can add rows in three ways. They can be prepended or appended to @@ -9029,7 +9029,7 @@ void gtk_clist_thaw( GtkCList * clist ); - + Setting text and pixmaps in the cells A cell can contain a pixmap, text or both. To set them the following @@ -9133,7 +9133,7 @@ void gtk_clist_set_shift( GtkCList *clist, - + Storing data pointers With a CList it is possible to set a data pointer for a row. This @@ -9163,7 +9163,7 @@ gint gtk_clist_find_row_from_data( GtkCList *clist, - + Working with selections There are also functions available that let us force the (un)selection @@ -9199,7 +9199,7 @@ Luckily, there is a simpler way... - + The signals that bring it together As with all other widgets, there are a few signals that can be used. The @@ -9242,7 +9242,7 @@ gtk_signal_connect(GTK_OBJECT( clist), - + A CList example @@ -9438,8 +9438,8 @@ required by the user. This section of the tutorial is under development. - - Creating a CTree + +Creating a CTree A CTree, being derived from CList, can have multiple columns. These columns optionally have titles that are displayed along the top of @@ -9479,7 +9479,7 @@ and "Description", with the first column containing the tree. - + Adding and Removing nodes The items in a CTree are termed nodes. Nodes are inserted @@ -9575,8 +9575,8 @@ remove. - - Setting CTree Attributes + +Setting CTree Attributes There are a number of functions that set options that pertain to a CTree instance as a whole (rather than to a particular node). The @@ -9635,7 +9635,7 @@ can be one of: - + Utilizing row data The CTree widget allows you to associate data with each node of the @@ -9697,8 +9697,8 @@ the same way as the corresponding CList ones. However, Tree is not derived from CList, so you cannot use them interchangeably. - - Creating a Tree + +Creating a Tree A Tree is created in the usual way, using: @@ -9740,7 +9740,7 @@ equivalent to gtk_list_*_items(). - + Adding a Subtree A subtree is created like any other Tree widget. A subtree is added @@ -9768,8 +9768,8 @@ expects. - - Handling the Selection List + +Handling the Selection List As with CList, the Tree type has a selection field, and it is possible to control the behaviour of the tree (somewhat) by @@ -9814,7 +9814,7 @@ to call gtk_signal_connect() for every subtree. - + Tree Widget Internals The Tree's struct definition looks like this: @@ -10321,7 +10321,7 @@ GtkWidget GTK_TREE_ITEM_SUBTREE (gpointer obj) - + Tree Example This is somewhat like the tree example in testgtk.c, but a lot less @@ -10535,7 +10535,7 @@ Itemfactory, it is not possible to add images or the character '/' to the menus. - + Manual Menu Creation In the true tradition of teaching, we'll show you the hard way @@ -10757,7 +10757,7 @@ by a menu bar, as shown in the sample code. - + Manual Menu Example That should about do it. Let's take a look at an example to help clarify. @@ -10905,7 +10905,7 @@ table, bind keys to menu functions. - + Using ItemFactory Now that we've shown you the hard way, here's how you do it using the @@ -10914,7 +10914,7 @@ gtk_item_factory calls. - + Item Factory Example Here is an example using the GTK item factory. @@ -11056,7 +11056,7 @@ use of double- and triple-click to select a word and a whole line, respectively. - + Creating and Configuring a Text box There is only one function for creating a new Text widget. @@ -11133,7 +11133,7 @@ TRUE or FALSE value. - + Text Manipulation The current insertion point of a Text widget can be set using @@ -11236,7 +11236,7 @@ with it. - + Keyboard Shortcuts The text widget has a number of pre-installed keyboard shortcuts for @@ -11311,7 +11311,7 @@ extend the selection. - + A GtkText Example @@ -11524,7 +11524,7 @@ widget, please consider writing a tutorial on it so others may benefit from your time. - + CTree @@ -11532,64 +11532,64 @@ from your time. - - Curves + +Curves - - Drawing Area + +Drawing Area - - Font Selection Dialog + +Font Selection Dialog - - Gamma Curve + +Gamma Curve - - Image + +Image - - Packer + +Packer - - Plugs and Sockets + +Plugs and Sockets - - Preview + +Preview @@ -12100,7 +12100,7 @@ void gtk_widget_hide( GtkWidget *widget ); Timeouts, IO and Idle Functions - + Timeouts You may be wondering how you make GTK do useful work when in gtk_main. @@ -12138,7 +12138,7 @@ gint timeout_callback( gpointer data ); - + Monitoring IO A nifty feature of GDK (the library that underlies GTK), is the @@ -12191,7 +12191,7 @@ void input_callback( gpointer data, - + Idle Functions @@ -12224,7 +12224,7 @@ called. Advanced Event and Signal Handling - + Signal Functions @@ -12355,7 +12355,7 @@ void gtk_signal_emit_stop_by_name( GtkObject *object, - + Signal Emission and Propagation Signal emission is the process whereby GTK runs all handlers for a @@ -12411,7 +12411,7 @@ the signal is propagated, not the current emission. Managing Selections - + Overview One type of interprocess communication supported by X and GTK is @@ -12449,8 +12449,8 @@ selections and targets are identified by atoms. - - Retrieving the selection + +Retrieving the selection Retrieving the selection is an asynchronous process. To start the process, you call: @@ -12609,8 +12609,8 @@ int main( int argc, - -Supplying the selection + +Supplying the selection Supplying the selection is a bit more complicated. You must register handlers that will be called when your selection is requested. For @@ -12821,7 +12821,7 @@ have equivalent functionality built-in, while in other cases it may not. - + Definitions Definitions for the extremes of many of the standard types are: @@ -12873,7 +12873,7 @@ guint32 - + Doubly Linked Lists The following functions are used to create, manage, and destroy @@ -12969,7 +12969,7 @@ void g_list_foreach( GList *list, - + Singly Linked Lists Many of the above functions for singly linked lists are identical to the @@ -13013,7 +13013,7 @@ void g_slist_foreach( GSList *list, - + Memory Management @@ -13061,7 +13061,7 @@ MEM_CHECK to the top of gmem.c and re-make and make install. - + Timers Timer functions can be used to time operations (e.g., to see how much @@ -13088,7 +13088,7 @@ gdouble g_timer_elapsed( GTimer *timer, - + String Handling GLib defines a new type called a GString, which is similar to a @@ -13166,7 +13166,7 @@ void g_string_sprintfa ( GString *string, - + Utility and Error Functions @@ -13244,8 +13244,8 @@ files. These can be used to set the colors of just about any widget, and can also be used to tile pixmaps onto the background of some widgets. - -Functions For rc Files + +Functions For rc Files When your application starts, you should include a call to: @@ -13304,7 +13304,7 @@ imagination as to how best to take advantage of this. - + GTK's rc File Format The format of the GTK file is illustrated in the example below. This is @@ -13408,7 +13408,7 @@ simple matter of common sense really. Anything that could apply, should. - + Example rc file @@ -13543,11 +13543,11 @@ widget "main window.*GtkButton*" style "main_button" -Writing Your Own Widgets +Writing Your Own Widgets - - Overview + +Overview Although the GTK distribution comes with many types of widgets that should cover most basic needs, there may come a time when you need to @@ -13572,8 +13572,8 @@ got this tutorial, or from: - - The Anatomy Of A Widget + +The Anatomy Of A Widget In order to create a new widget, it is important to have an understanding of how GTK objects work. This section is just meant as a @@ -13634,12 +13634,12 @@ cast to the parent class' object structure as needed. - - Creating a Composite widget + +Creating a Composite widget - Introduction +Introduction One type of widget that you may be interested in creating is a widget that is merely an aggregate of other GTK widgets. This type of @@ -13657,7 +13657,7 @@ depressed. - Choosing a parent class +Choosing a parent class The parent class for a composite widget is typically the container class that holds all of the elements of the composite widget. For @@ -13681,7 +13681,7 @@ from VBox instead, and stick our table inside the VBox. - The header file +The header file Each widget class has a header file which declares the object and class structures for that widget, along with public functions. @@ -14138,8 +14138,8 @@ main (int argc, char *argv[]) - -Creating a widget from scratch. + +Creating a widget from scratch @@ -14154,7 +14154,7 @@ set the value. - Displaying a widget on the screen +Displaying a widget on the screen There are several steps that are involved in displaying on the screen. After the widget is created with a call to WIDGETNAME_new(), @@ -14212,7 +14212,7 @@ an expose() function. - The origins of the Dial Widget +The origins of the Dial Widget Just as all land animals are just variants on the first amphibian that crawled up out of the mud, GTK widgets tend to start off as variants @@ -14231,7 +14231,7 @@ would be a good idea to look them over before continuing. - The Basics +The Basics Quite a bit of our widget should look pretty familiar from the Tictactoe widget. First, we have a header file: @@ -15039,7 +15039,7 @@ entry widget to display the current value of the dial. - + Learning More Only a small part of the many details involved in creating widgets @@ -15058,7 +15058,7 @@ Good luck! Scribble, A Simple Example Drawing Program - + Overview In this section, we will build a simple drawing program. In the @@ -15072,7 +15072,7 @@ pressure and tilt, from such devices quite easy. - + Event Handling The GTK signals we have already discussed are for high-level actions, @@ -15284,7 +15284,7 @@ motion_notify_event (GtkWidget *widget, GdkEventMotion *event) - + The DrawingArea Widget, And Drawing We now turn to the process of drawing on the screen. The @@ -15497,8 +15497,8 @@ mundane details like creating the main window. - - Adding XInput support + +Adding XInput support It is now possible to buy quite inexpensive input devices such as drawing tablets, which allow drawing with a much greater @@ -15966,7 +15966,7 @@ Notebook, Progress Bar, Dialogs, and File selection widgets. Thanks a lot Mark! You've been a great help. -Tim Janik timj@psynet.net for his great job on the Lists +Tim Janik timj@gtk.org for his great job on the Lists Widget. His excellent work on automatically extracting the widget tree and signal information from GTK. Thanks Tim :) @@ -16049,7 +16049,7 @@ signals. Therefore, you should refer to the widget hierarchy tree when using the signals listed in this section. - + GtkObject @@ -16060,7 +16060,7 @@ void GtkObject::destroy (GtkObject *, - + GtkWidget @@ -16240,7 +16240,7 @@ void GtkWidget::debug-msg (GtkWidget *, - + GtkData @@ -16251,7 +16251,7 @@ void GtkData::disconnect (GtkData *, - + GtkContainer @@ -16274,7 +16274,7 @@ void GtkContainer::set-focus-child (GtkContainer *, - + GtkCalendar @@ -16297,7 +16297,7 @@ void GtkCalendar::next-year (GtkCalendar *, - + GtkEditable @@ -16354,7 +16354,7 @@ void GtkEditable::paste-clipboard (GtkEditable *, - + GtkTipsQuery @@ -16378,7 +16378,7 @@ gboolean GtkTipsQuery::widget-selected (GtkTipsQuery *, - + GtkCList @@ -16437,7 +16437,7 @@ void GtkCList::abort-column-resize (GtkCList *, - + GtkNotebook @@ -16450,7 +16450,7 @@ void GtkNotebook::switch-page (GtkNotebook *, - + GtkList @@ -16467,7 +16467,7 @@ void GtkList::unselect-child (GtkList *, - + GtkMenuShell @@ -16488,7 +16488,7 @@ void GtkMenuShell::cancel (GtkMenuShell *, - + GtkToolbar @@ -16503,7 +16503,7 @@ void GtkToolbar::style-changed (GtkToolbar *, - + GtkTree @@ -16520,7 +16520,7 @@ void GtkTree::unselect-child (GtkTree *, - + GtkButton @@ -16539,7 +16539,7 @@ void GtkButton::leave (GtkButton *, - + GtkItem @@ -16554,7 +16554,7 @@ void GtkItem::toggle (GtkItem *, - + GtkWindow @@ -16566,7 +16566,7 @@ void GtkWindow::set-focus (GtkWindow *, - + GtkHandleBox @@ -16581,7 +16581,7 @@ void GtkHandleBox::child-detached (GtkHandleBox *, - + GtkToggleButton @@ -16592,7 +16592,7 @@ void GtkToggleButton::toggled (GtkToggleButton *, - + GtkMenuItem @@ -16605,7 +16605,7 @@ void GtkMenuItem::activate-item (GtkMenuItem *, - + GtkListItem @@ -16641,7 +16641,7 @@ void GtkListItem::scroll-horizontal (GtkListItem *, - + GtkTreeItem @@ -16654,7 +16654,7 @@ void GtkTreeItem::expand (GtkTreeItem *, - + GtkCheckMenuItem @@ -16665,7 +16665,7 @@ void GtkCheckMenuItem::toggled (GtkCheckMenuItem *, - + GtkInputDialog @@ -16680,7 +16680,7 @@ void GtkInputDialog::disable-device (GtkInputDialog *, - + GtkColorSelection @@ -16691,7 +16691,7 @@ void GtkColorSelection::color-changed (GtkColorSelection *, - + GtkStatusBar @@ -16708,7 +16708,7 @@ void GtkStatusbar::text-popped (GtkStatusbar *, - + GtkCTree @@ -16739,7 +16739,7 @@ void GtkCTree::change-focus-row-expansion (GtkCTree *, - + GtkCurve @@ -16750,7 +16750,7 @@ void GtkCurve::curve-type-changed (GtkCurve *, - + GtkAdjustment @@ -17257,7 +17257,7 @@ struct _GdkEventOther which are not included in complete form elsewhere. - + Tictactoe @@ -17560,12 +17560,12 @@ int main( int argc, - - GtkDial + +GtkDial - gtkdial.h +gtkdial.h /* example-start gtkdial gtkdial.h */ @@ -17667,7 +17667,7 @@ void gtk_dial_set_adjustment (GtkDial *dial, - gtkdial.c +gtkdial.c /* example-start gtkdial gtkdial.c */ @@ -18331,7 +18331,7 @@ gtk_dial_adjustment_value_changed (GtkAdjustment *adjustment, - dial_test.c +dial_test.c #include <stdio.h> @@ -18405,12 +18405,12 @@ int main( int argc, - - Scribble + +Scribble - scribble-simple.c +scribble-simple.c /* example-start scribble-simple scribble-simple.c */ @@ -18599,7 +18599,7 @@ int main( int argc, - scribble-xinput.c +scribble-xinput.c /* example-start scribble-xinput scribble-xinput.c */ @@ -18946,7 +18946,7 @@ field. The selection_mode may be one of the following: The default is GTK_SELECTION_MULTIPLE. - + Signals @@ -18982,8 +18982,8 @@ removed from the List. - - Functions + +Functions guint gtk_list_get_type( void ); @@ -19115,8 +19115,8 @@ gint GTK_IS_LIST( gpointer obj); - - Example + +Example Following is an example program that will print out the changes of the selection of a List, and lets you "arrest" list items into a prison @@ -19406,8 +19406,8 @@ void sigh_print_selection( GtkWidget *gtklist, - - List Item Widget + +List Item Widget The ListItem widget is designed to act as a container holding up to one child, providing functions for selection/deselection just like the @@ -19431,17 +19431,17 @@ also add a GtkVBox or a GtkArrow etc. to the GtkListItem. - + Signals -AkListItem does not create new signals on its own, but inherits +A GtkListItem does not create new signals on its own, but inherits the signals of a Item. - - Functions + +Functions guint gtk_list_item_get_type( void ); @@ -19503,7 +19503,7 @@ gint GTK_IS_LIST_ITEM( gpointer obj ); - + Example Please see the List example on this, which covers the usage of a diff --git a/docs/tutorial/gtk_tut_packbox1.eps b/docs/tutorial/gtk_tut_packbox1.eps new file mode 100644 index 0000000000..41ca28b63f --- /dev/null +++ b/docs/tutorial/gtk_tut_packbox1.eps @@ -0,0 +1,1111 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: (ImageMagick) +%%Title: (gtk_tut_packbox1.eps) +%%CreationDate: (Mon Jul 17 16:57:42 2000) +%%BoundingBox: 0 0 357.642 159 +%%DocumentData: Clean7Bit +%%LanguageLevel: 1 +%%Pages: 0 +%%EndComments + +%%BeginDefaults +%%PageOrientation: Portrait +%%EndDefaults + +%%BeginProlog +% +% Display a color image. The image is displayed in color on +% Postscript viewers or printers that support color, otherwise +% it is displayed as grayscale. +% +/buffer 512 string def +/byte 1 string def +/color_packet 3 string def +/pixels 768 string def + +/DirectClassPacket +{ + % + % Get a DirectClass packet. + % + % Parameters: + % red. + % green. + % blue. + % length: number of pixels minus one of this color (optional). + % + currentfile color_packet readhexstring pop pop + compression 0 gt + { + /number_pixels 3 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add 3 mul def + } ifelse + 0 3 number_pixels 1 sub + { + pixels exch color_packet putinterval + } for + pixels 0 number_pixels getinterval +} bind def + +/DirectClassImage +{ + % + % Display a DirectClass image. + % + systemdict /colorimage known + { + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { DirectClassPacket } false 3 colorimage + } + { + % + % No colorimage operator; convert to grayscale. + % + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { GrayDirectClassPacket } image + } ifelse +} bind def + +/GrayDirectClassPacket +{ + % + % Get a DirectClass packet; convert to grayscale. + % + % Parameters: + % red + % green + % blue + % length: number of pixels minus one of this color (optional). + % + currentfile color_packet readhexstring pop pop + color_packet 0 get 0.299 mul + color_packet 1 get 0.587 mul add + color_packet 2 get 0.114 mul add + cvi + /gray_packet exch def + compression 0 gt + { + /number_pixels 1 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add def + } ifelse + 0 1 number_pixels 1 sub + { + pixels exch gray_packet put + } for + pixels 0 number_pixels getinterval +} bind def + +/GrayPseudoClassPacket +{ + % + % Get a PseudoClass packet; convert to grayscale. + % + % Parameters: + % index: index into the colormap. + % length: number of pixels minus one of this color (optional). + % + currentfile byte readhexstring pop 0 get + /offset exch 3 mul def + /color_packet colormap offset 3 getinterval def + color_packet 0 get 0.299 mul + color_packet 1 get 0.587 mul add + color_packet 2 get 0.114 mul add + cvi + /gray_packet exch def + compression 0 gt + { + /number_pixels 1 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add def + } ifelse + 0 1 number_pixels 1 sub + { + pixels exch gray_packet put + } for + pixels 0 number_pixels getinterval +} bind def + +/PseudoClassPacket +{ + % + % Get a PseudoClass packet. + % + % Parameters: + % index: index into the colormap. + % length: number of pixels minus one of this color (optional). + % + currentfile byte readhexstring pop 0 get + /offset exch 3 mul def + /color_packet colormap offset 3 getinterval def + compression 0 gt + { + /number_pixels 3 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add 3 mul def + } ifelse + 0 3 number_pixels 1 sub + { + pixels exch color_packet putinterval + } for + pixels 0 number_pixels getinterval +} bind def + +/PseudoClassImage +{ + % + % Display a PseudoClass image. + % + % Parameters: + % class: 0-PseudoClass or 1-Grayscale. + % + currentfile buffer readline pop + token pop /class exch def pop + class 0 gt + { + currentfile buffer readline pop + token pop /depth exch def pop + /grays columns 8 add depth sub depth mul 8 idiv string def + columns rows depth + [ + columns 0 0 + rows neg 0 rows + ] + { currentfile grays readhexstring pop } image + } + { + % + % Parameters: + % colors: number of colors in the colormap. + % colormap: red, green, blue color packets. + % + currentfile buffer readline pop + token pop /colors exch def pop + /colors colors 3 mul def + /colormap colors string def + currentfile colormap readhexstring pop pop + systemdict /colorimage known + { + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { PseudoClassPacket } false 3 colorimage + } + { + % + % No colorimage operator; convert to grayscale. + % + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { GrayPseudoClassPacket } image + } ifelse + } ifelse +} bind def + +/DisplayImage +{ + % + % Display a DirectClass or PseudoClass image. + % + % Parameters: + % x & y translation. + % x & y scale. + % label pointsize. + % image label. + % image columns & rows. + % class: 0-DirectClass or 1-PseudoClass. + % compression: 0-RunlengthEncodedCompression or 1-NoCompression. + % hex color packets. + % + gsave + currentfile buffer readline pop + token pop /x exch def + token pop /y exch def pop + x y translate + currentfile buffer readline pop + token pop /x exch def + token pop /y exch def pop + currentfile buffer readline pop + token pop /pointsize exch def pop + /Helvetica findfont pointsize scalefont setfont + x y scale + currentfile buffer readline pop + token pop /columns exch def + token pop /rows exch def pop + currentfile buffer readline pop + token pop /class exch def pop + currentfile buffer readline pop + token pop /compression exch def pop + class 0 gt { PseudoClassImage } { DirectClassImage } ifelse + grestore +} bind def +%%EndProlog +%%Page: 1 1 +%%PageBoundingBox: 0 0 359 160 +userdict begin +%%BeginData: +DisplayImage +0 0 +358.642 159.623 +12 +528 235 +1 +0 +0 +256 +000000 +000080 +707470 +909490 +c0c0c0 +d0d4d0 +f81440 +f8fcf8 +082c13 +30f500 +10ff00 +08bf00 +30a901 +3ed900 +100100 +085000 +e460d8 +363836 +101010 +080808 +50acd8 +37f4f3 +09ffff +50bfbf +da04b8 +e600f3 +0100ff +5000bf +5050cb +0137dc +000901 +005050 +580808 +373030 +300830 +3e303e +d844dc +f53e36 +ff1010 +bf0808 +b11b0a +0db637 +030010 +500008 +560430 +37003e +100010 +080008 +c80896 +3330e4 +081001 +080850 +025c40 +00f500 +00ff00 +00bf00 +a9040d +c00000 +0d0000 +500000 +c8083d +363000 +141000 +500800 +746820 +59f537 +0cff10 +08bf08 +73a914 +59d9f4 +0c01ff +0c50bf +24043e +f60012 +ff0003 +bf0008 +700896 +3730e4 +101001 +580440 +370000 +100000 +080000 +50080d +373000 +091000 +f4803d +f5f500 +ffff00 +bfbf00 +38a928 +a6d937 +040110 +505008 +03f014 +0036f4 +0010ff +0008bf +280070 +36f512 +10ff03 +4c0408 +020030 +000010 +000008 +505083 +373700 +090900 +505003 +100830 +f6303e +580840 +b03000 +041000 +b84410 +353e00 +101000 +080800 +281b3e +36b600 +4c0412 +020000 +28b020 +36f5f4 +10ffff +08bfbf +5ca91e +f6d91a +ff0103 +bf5008 +ad2428 +f9375c +03100f +cc3001 +41f500 +08ff00 +0004a1 +0000aa +00000c +d05030 +f637f4 +ff09ff +bf50bf +080805 +40300d +1f1003 +500808 +cc08e4 +f63059 +ff100f +d0447c +f63ef9 +ff10ff +bf08bf +080030 +4000f7 +1f00ff +8c082f +f63002 +ff1001 +90300d +2c3e00 +031000 +085400 +403800 +1f1000 +00507c +0037f9 +0009ff +0050bf +10da7c +02e6f9 +0001ff +eb52a0 +0001f6 +0000ff +0000bf +00d800 +003800 +001000 +000800 +003000 +013e00 +d48400 +f6f500 +d0b100 +f60d00 +ff0300 +bf5000 +8cce7c +f638f9 +ccf450 +2cf537 +03ff09 +08bf50 +080a20 +400000 +1f0000 +10ec08 +eb6eda +0000e6 +000001 +000350 +7c0a01 +f90037 +ff0010 +009804 +00cb08 +00dc30 +000110 +005008 +000000 +000000 +000000 +000000 +000000 +000000 +000000 +000000 +000000 +000000 +000000 +000000 +000000 +000000 +000000 +000000 +000000 +000000 +000000 +000000 +000000 +000000 +000000 +000000 +000000 +000000 +000000 +000000 +000000 +000000 +000000 +000000 +000000 +000000 +000000 +000000 +000000 +000000 +000000 +000000 +000000 +000000 +000000 +000000 +000000 +04ff04ff040e0000040007ff07ff070c020000000400070004ff04ff040b020000000400 +070004ff04ff040b020000000400070004ff04ff040b0200000004000700040201ff01ff +010504020200000004000700040201ff01ff010504020200000004000700040201ff01d1 +070e0000070e00000101070e0000010104020200000004000700040201ff01d10700040c +020000000700040c0200000001010700040c020000000101040202000000040007000402 +0103060401060600010a0701011407010104070101ff01950700040c0200000007000401 +000804010200000001010700040c02000000010104020200000004000700040201040604 +01040600010b0701011407010104070101ff01950700040c020000000700040100080401 +020000000101070004020001040300010401020000000101040202000000040007000402 +0105060401020600010c0700010007010100070101020703010207030101070101010701 +010007010100070101020703010107010101070101ff01830700040c0200000007000401 +000004060000040102000000010107000403000104010001040202000000010104020200 +00000400070004020106060401000600010c070101000702010007010100070101010701 +010007010101070101000701010007010101070201000701010007010101070101000701 +0101070101ff01830700040c020000000700040100000406000004010200000001010700 +0404000304030200000001010402020000000400070004020107060201000600010d0701 +010007010101070101040701010007010104070301020701010107010100070101010701 +0101070301ff01840700040c020000000700040100000406000004010200000001010700 +0405000104040200000001010402020000000400070004020108060001000602010c0700 +010107010101070101010704010007010104070301020701010107010100070101010701 +0102070101ff01850700040c020000000700040100000406000004010200000001010700 +0404000304030200000001010402020000000400070004020107060001000604010b0700 +010107010101070101000701010107010100070101040701010007010101070101010701 +01000701010107010101070301ff01840700040c02000000070004010000040600000401 +020000000101070004030001040100010402020000000101040202000000040007000402 +010606000102060401060701010007010101070201000701010007010101070101000701 +010107010100070101010701010007020100070101000701010107010100070101010701 +01ff01830700040200050403020000000700040100000406000004010200000001010700 +040200010403000104010200000001010402020000000400070004020105060001040604 +010507010100070101010701010007010102070201000701010007030101070101020703 +0100070101020703010107010101070101ff018307000402000504030200000007000401 +000804010200000001010700040c02000000010104020200000004000700040201040600 +01060604010b070101ff01b10700040c020000000700040c0200000001010700040c0200 +00000101040202000000040007000402011d070101ff01b10700020d00000700020d0000 +01010700020d00000101040202000000040007000402011d070101ff01b1001f0101000f +010104020200000004000700040201ff01ff010504020200000004000700040205ff05ff +050504020200000004000700040205ff05ff050504020200000004000700040205ff05ff +050504020200000004000700040205ff05ff050504020200000004000700040205ff05ff +050504020200000004000700040205ff05ff050504020200000004000700040205ff05ff +050504020200000004000700040205ff05ff050504020200000004000700040205ff05ff +050504020200000004000700040205ff05ff050504020200000004000700040205ff05ff +050504020200000004000700040205ff05ff050504020200000004000700040205ff05ff +05050402020000000400070004020511000005010000050b000005050000053600000500 +000505040000050400000506000305020005050a00020501000005ff056b040202000000 +0400070004020511000005010000050b0000050500000535000005010000050800000500 +000005030000050500000503000005010000050e0000050200000501000005ff056a0402 +02000000040007000402050b000105000000050000020500000005010000050800000500 +000105020000050000010503000205010000050300000507000005000001050300020501 +000005020000050200000505000005010000050800000500000005030000050500000506 +0000050e0000050200000501000005ff056a040202000000040007000402050a00000501 +000105010000050100000500000005090001050100000501000105010000050100000502 +000005010000050100000508000105010000050100000502000005000000050200000502 +000005040000050200000507000005020000050200000506000105040000050e00000502 +0000050200000501000005ff0566040202000000040007000402050a0000050200000501 +000005010001050a00000502000005010000050200000501000005020000050200010509 +000005020000050100000502000005010000050100000501000005050000050200040503 +00000502000005020000050800010502000505090000050200000502000005ff05690402 +02000000040007000402050a0000050200000501000005010001050a0000050200000501 +000005020000050100000502000005020001050900000502000005010004050100000501 +00000501000005050000050200000507000405020000050a000005010000050e00000502 +00000502000005ff0569040202000000040007000402050a000005020000050100000501 +000005000000050900000502000005010000050200000501000005020000050100000501 +000005080000050200000501000005050000050000000500000005000000050500000502 +0000050600000504000005010000050500000503000005010000050e0000050200000502 +000005ff0569040202000000040007000402050a00000501000105010000050100000501 +000005080000050200000501000105010000050100000502000005000000050300000507 +000005020000050100000502000005020000050200000506000005020000050600000504 +000005010000050500000503000005010000050e0000050200000502000005ff05690402 +02000000040007000402050b000105000000050100010500000005020000050700000502 +000005010000050000010503000205010000050300000507000005020000050200020503 +000005020000050600000502000005060000050400000501000405020003050200050502 +000005060002050300000501000005ff0566040202000000040007000402050e0000054f +0000052a0000050c00000502000005ff0566040202000000040007000402050a00000502 +000005090006051a0006051c000005290000050d00000501000005ff0567040202000000 +040007000402050b0002055100000536000005ff056b04020200000004000700040205ff +05ff050504020200000004000700040205090751000007200000072a0000073000000730 +00000712000005e204020200000004000700040205090700055000000700051f00000700 +052900000700052f00000700052f000007000511000005e2040202000000040007000402 +05090700054f030000000700051e0300000007000528030000000700052e030000000700 +052e03000000070005100300000005e204020200000004000700040205090700054f0300 +00000700051e0300000007000528030000000700052e030000000700052e030000000700 +05100300000005e204020200000004000700040205090700054f030000000700051e0300 +000007000528030000000700052e030000000700052e03000000070005100300000005e2 +04020200000004000700040205090700054f030000000700051e03000000070005280300 +00000700052e030000000700052e03000000070005100300000005e20402020000000400 +07000402050907000509000005010000050b0000052e0000050403000000070005040000 +05000000051603000000070005020000050c000005010000051303000000070005020005 +050400000504000005060003050200050505030000000700050200050504000005040000 +05060003050200050505030000000700050300020501000005060300000005e204020200 +0000040007000402050907000509000005010000050b0000052e00000504030000000700 +0503000005010000051603000000070005020000050c0000050100000513030000000700 +05020000050800000500000005030000050500000503000005010000050a030000000700 +05020000050800000500000005030000050500000503000005010000050a030000000700 +05020000050200000501000005050300000005e204020200000004000700040205090700 +050300010500000005000002050000000501000005080000050000010503000205010000 +050300000507000005000001050300020503000205020000050100000501030000000700 +050300000501000005000001050300020501000005030000050403000000070005020000 +050000010502000005020000050000050501000205020000050000010506030000000700 +050200000508000005000000050300000505000005060000050a03000000070005020000 +0508000005000000050300000505000005060000050a0300000007000502000005020000 +0501000005050300000005e2040202000000040007000402050907000502000005010001 +050100000501000005000000050900010501000005010000050200000501000005010000 +050800010501000005010000050200000501000005020000050100000500000005020300 +000007000502000005020001050100000501000005020000050100000501000005050300 +000007000502000105010000050100000502000005010000050100000501000005020000 +050100010501000005050300000007000502000005070000050200000502000005060001 +05040000050a030000000700050200000507000005020000050200000506000105040000 +050a0300000007000502000005020000050200000501000005010300000005e204020200 +00000400070004020509070005020000050200000501000005010001050a000005020000 +050100000502000005020001050900000502000005050000050100000505000105030300 +000007000502000005020000050200000501000005020000050200010506030000000700 +050200000502000005010000050200000501000005010000050100000502000005010000 +050200000505030000000700050200040503000005020000050200000508000105020005 +050503000000070005020004050300000502000005020000050800010502000505050300 +0000070005020000050200000502000005040300000005e2040202000000040007000402 +0509070005020000050200000501000005010001050a0000050200000501000005020000 +050200010509000005020000050200030501000005050001050303000000070005020000 +050200000502000005010000050200000502000105060300000007000502000005020000 +050100000502000005010000050100000501000005020000050100000502000005050300 +00000700050200000507000405020000050a000005010000050a03000000070005020000 +0507000405020000050a000005010000050a030000000700050200000502000005020000 +05040300000005e204020200000004000700040205090700050200000502000005010000 +050100000500000005090000050200000501000005020000050100000501000005080000 +050200000501000005020000050100000505000005000000050203000000070005020000 +050200000502000005010000050200000501000005010000050503000000070005020000 +050200000501000005020000050100000501000005010000050200000501000005020000 +050503000000070005020000050600000504000005010000050500000503000005010000 +050a03000000070005020000050600000504000005010000050500000503000005010000 +050a03000000070005020000050200000502000005040300000005e20402020000000400 +070004020509070005020000050100010501000005010000050100000508000105010000 +050100000502000005000000050300000507000105010000050100000502000005010000 +050200000501000005010000050103000000070005020000050200010501000005010000 +050200000500000005030000050403000000070005020001050100000501000005010001 +050100000501000005010000050200000501000005020000050503000000070005020000 +050600000504000005010000050500000503000005010000050a03000000070005020000 +050600000504000005010000050500000503000005010000050a03000000070005020000 +050200000502000005040300000005e20402020000000400070004020509070005030001 +050000000501000105000000050200000507000005000001050300020501000005030000 +050700000500000105030002050000000501000205020000050200000500030000000700 +050200000502000005000001050300020501000005030000050100000501030000000700 +050200000500000105030001050000000501000105000001050100020502000005020000 +050200000501030000000700050200000506000005040000050100040502000305020005 +050200000501030000000700050200000506000005040000050100040502000305020005 +05020000050103000000070005030002050300000501000005010300000005e204020200 +00000400070004020509070005060000052c000005190300000007000503000005160000 +0501030000000700052500000501030000000700052b00000501030000000700052b0000 +0501030000000700050900000502000005010300000005e2040202000000040007000402 +050907000502000005020000050900060513000605000000051903000000070005030000 +051500000502030000000700052400000502030000000700052a00000502030000000700 +052a00000502030000000700050900000501000005020300000005e20402020000000400 +070004020509070005030002052d00000519030000000700050400000518030000000700 +0528030000000700052e030000000700052e0300000007000508000005060300000005e2 +04020200000004000700040205090700054f030000000700051e03000000070005280300 +00000700052e030000000700052e03000000070005100300000005e20402020000000400 +0700040205090700054f030000000700051e0300000007000528030000000700052e0300 +00000700052e03000000070005100300000005e204020200000004000700040205090700 +0500034f000007000500031e0000070005000328000007000500032e000007000500032e +0000070005000310000005e2040202000000040007000402050900ff001805e204020200 +0000040007000402051b075100000524072000000524072a000005240727000005240730 +0000052607120000051e040202000000040007000402051b07000550000005240700051f +00000524070005290000052407000526000005240700052f00000526070005110000051e +040202000000040007000402051b0700054f0300000005240700051e0300000005240700 +0528030000000524070005250300000005240700052e0300000005260700051003000000 +051e040202000000040007000402051b0700054f0300000005240700051e030000000524 +07000528030000000524070005250300000005240700052e030000000526070005100300 +0000051e040202000000040007000402051b0700054f0300000005240700051e03000000 +052407000528030000000524070005250300000005240700052e03000000052607000510 +03000000051e040202000000040007000402051b0700054f0300000005240700051e0300 +0000052407000528030000000524070005250300000005240700052e0300000005260700 +051003000000051e040202000000040007000402051b07000509000005010000050b0000 +052e00000504030000000524070005040000050000000516030000000524070005020000 +050c00000501000005130300000005240700050100060500000405020000050300000501 +000505050300000005240700050200050504000005040000050600030502000505050300 +0000052607000503000205010000050603000000051e040202000000040007000402051b +07000509000005010000050b0000052e0000050403000000052407000503000005010000 +0516030000000524070005020000050c0000050100000513030000000524070005040000 +0503000005030000050100000503000005010000050a0300000005240700050200000508 +00000500000005030000050500000503000005010000050a030000000526070005020000 +0502000005010000050503000000051e040202000000040007000402051b070005030001 +050000000500000205000000050100000508000005000001050300020501000005030000 +050700000500000105030002050300020502000005010000050103000000052407000503 +000005010000050000010503000205010000050300000504030000000524070005020000 +050000010502000005020000050000050501000205020000050000010506030000000524 +0700050400000503000005030000050100000503000005010000050a0300000005240700 +050200000508000005000000050300000505000005060000050a03000000052607000502 +00000502000005010000050503000000051e040202000000040007000402051b07000502 +000005010001050100000501000005000000050900010501000005010000050200000501 +000005010000050800010501000005010000050200000501000005020000050100000500 +000005020300000005240700050200000502000105010000050100000502000005010000 +050100000505030000000524070005020001050100000501000005020000050100000501 +000005010000050200000501000105010000050503000000052407000504000005030000 +05030000050100000503000005010000050a030000000524070005020000050700000502 +0000050200000506000105040000050a0300000005260700050200000502000005020000 +05010000050103000000051e040202000000040007000402051b07000502000005020000 +0501000005010001050a0000050200000501000005020000050200010509000005020000 +050500000501000005050001050303000000052407000502000005020000050200000501 +000005020000050200010506030000000524070005020000050200000501000005020000 +050100000501000005010000050200000501000005020000050503000000052407000504 +000005030004050200000503000005010005050503000000052407000502000405030000 +050200000502000005080001050200050505030000000526070005020000050200000502 +0000050403000000051e040202000000040007000402051b070005020000050200000501 +000005010001050a00000502000005010000050200000502000105090000050200000502 +000305010000050500010503030000000524070005020000050200000502000005010000 +050200000502000105060300000005240700050200000502000005010000050200000501 +000005010000050100000502000005010000050200000505030000000524070005040000 +0503000005020000050200000503000005010000050a0300000005240700050200000507 +000405020000050a000005010000050a0300000005260700050200000502000005020000 +050403000000051e040202000000040007000402051b0700050200000502000005010000 +050100000500000005090000050200000501000005020000050100000501000005080000 +050200000501000005020000050100000505000005000000050203000000052407000502 +000005020000050200000501000005020000050100000501000005050300000005240700 +050200000502000005010000050200000501000005010000050100000502000005010000 +050200000505030000000524070005040000050300000503000005010000050300000501 +0000050a0300000005240700050200000506000005040000050100000505000005030000 +05010000050a0300000005260700050200000502000005020000050403000000051e0402 +02000000040007000402051b070005020000050100010501000005010000050100000508 +000105010000050100000502000005000000050300000507000105010000050100000502 +000005010000050200000501000005010000050103000000052407000502000005020001 +050100000501000005020000050000000503000005040300000005240700050200010501 +000005010000050100010501000005010000050100000502000005010000050200000505 +0300000005240700050400000503000005030000050100000503000005010000050a0300 +00000524070005020000050600000504000005010000050500000503000005010000050a +0300000005260700050200000502000005020000050403000000051e0402020000000400 +07000402051b070005030001050000000501000105000000050200000507000005000001 +050300020501000005030000050700000500000105030002050000000501000205020000 +050200000500030000000524070005020000050200000500000105030002050100000503 +000005010000050103000000052407000502000005000001050300010500000005010001 +050000010501000205020000050200000502000005010300000005240700050400000503 +000005030000050200030502000505020000050103000000052407000502000005060000 +050400000501000405020003050200050502000005010300000005260700050300020503 +000005010000050103000000051e040202000000040007000402051b070005060000052c +000005190300000005240700050300000516000005010300000005240700052500000501 +03000000052407000522000005010300000005240700052b000005010300000005260700 +0509000005020000050103000000051e040202000000040007000402051b070005020000 +050200000509000605130006050000000519030000000524070005030000051500000502 +030000000524070005240000050203000000052407000521000005020300000005240700 +052a0000050203000000052607000509000005010000050203000000051e040202000000 +040007000402051b070005030002052d0000051903000000052407000504000005180300 +0000052407000528030000000524070005250300000005240700052e0300000005260700 +05080000050603000000051e040202000000040007000402051b0700054f030000000524 +0700051e03000000052407000528030000000524070005250300000005240700052e0300 +000005260700051003000000051e040202000000040007000402051b0700054f03000000 +05240700051e03000000052407000528030000000524070005250300000005240700052e +0300000005260700051003000000051e040202000000040007000402051b07000500034f +0000052407000500031e0000052407000500032800000524070005000325000005240700 +0500032e000005260700050003100000051e040202000000040007000402051b00520524 +00210524002b052400280524003105260013051e04020200000004000700040205090778 +00000747000007510000074e0000074e0000073a00000509040202000000040007000402 +05090700057700000700054600000700055000000700054d00000700054d000007000539 +000005090402020000000400070004020509070005760300000007000545030000000700 +054f030000000700054c030000000700054c030000000700053803000000050904020200 +00000400070004020509070005760300000007000545030000000700054f030000000700 +054c030000000700054c0300000007000538030000000509040202000000040007000402 +0509070005760300000007000545030000000700054f030000000700054c030000000700 +054c03000000070005380300000005090402020000000400070004020509070005760300 +000007000545030000000700054f030000000700054c030000000700054c030000000700 +053803000000050904020200000004000700040205090700051d000005010000050b0000 +052e000005170300000007000518000005000000052903000000070005160000050c0000 +050100000526030000000700051500060500000405020000050300000501000505180300 +000007000515000605000004050200000503000005010005051803000000070005170002 +05010000051a03000000050904020200000004000700040205090700051d000005010000 +050b0000052e000005170300000007000517000005010000052903000000070005160000 +050c00000501000005260300000007000518000005030000050300000501000005030000 +05010000051d030000000700051800000503000005030000050100000503000005010000 +051d03000000070005160000050200000501000005190300000005090402020000000400 +070004020509070005170001050000000500000205000000050100000508000005000001 +050300020501000005030000050700000500000105030002050300020502000005010000 +051403000000070005170000050100000500000105030002050100000503000005170300 +000007000516000005000001050200000502000005000005050100020502000005000001 +0519030000000700051800000503000005030000050100000503000005010000051d0300 +00000700051800000503000005030000050100000503000005010000051d030000000700 +051600000502000005010000051903000000050904020200000004000700040205090700 +051600000501000105010000050100000500000005090001050100000501000005020000 +050100000501000005080001050100000501000005020000050100000502000005010000 +050000000515030000000700051600000502000105010000050100000502000005010000 +050100000518030000000700051600010501000005010000050200000501000005010000 +050100000502000005010001050100000518030000000700051800000503000005030000 +050100000503000005010000051d03000000070005180000050300000503000005010000 +0503000005010000051d0300000007000516000005020000050200000501000005150300 +000005090402020000000400070004020509070005160000050200000501000005010001 +050a00000502000005010000050200000502000105090000050200000505000005010000 +050500010516030000000700051600000502000005020000050100000502000005020001 +051903000000070005160000050200000501000005020000050100000501000005010000 +050200000501000005020000051803000000070005180000050300040502000005030000 +050100050518030000000700051800000503000405020000050300000501000505180300 +000007000516000005020000050200000518030000000509040202000000040007000402 +0509070005160000050200000501000005010001050a0000050200000501000005020000 +050200010509000005020000050200030501000005050001051603000000070005160000 +050200000502000005010000050200000502000105190300000007000516000005020000 +050100000502000005010000050100000501000005020000050100000502000005180300 +00000700051800000503000005020000050200000503000005010000051d030000000700 +051800000503000005020000050200000503000005010000051d03000000070005160000 +050200000502000005180300000005090402020000000400070004020509070005160000 +050200000501000005010000050000000509000005020000050100000502000005010000 +050100000508000005020000050100000502000005010000050500000500000005150300 +000007000516000005020000050200000501000005020000050100000501000005180300 +000007000516000005020000050100000502000005010000050100000501000005020000 +050100000502000005180300000007000518000005030000050300000501000005030000 +05010000051d030000000700051800000503000005030000050100000503000005010000 +051d03000000070005160000050200000502000005180300000005090402020000000400 +070004020509070005160000050100010501000005010000050100000508000105010000 +050100000502000005000000050300000507000105010000050100000502000005010000 +050200000501000005010000051403000000070005160000050200010501000005010000 +050200000500000005030000051703000000070005160001050100000501000005010001 +050100000501000005010000050200000501000005020000051803000000070005180000 +0503000005030000050100000503000005010000051d0300000007000518000005030000 +05030000050100000503000005010000051d030000000700051600000502000005020000 +051803000000050904020200000004000700040205090700051700010500000005010001 +050000000502000005070000050000010503000205010000050300000507000005000001 +050300020500000005010002050200000502000005130300000007000516000005020000 +050000010503000205010000050300000501000005140300000007000516000005000001 +050300010500000005010001050000010501000205020000050200000502000005140300 +000007000518000005030000050300000502000305020005050200000514030000000700 +051800000503000005030000050200030502000505020000051403000000070005170002 +0503000005010000051503000000050904020200000004000700040205090700051a0000 +052c0000052c030000000700051700000516000005140300000007000539000005140300 +00000700053600000514030000000700053600000514030000000700051d000005020000 +051503000000050904020200000004000700040205090700051600000502000005090006 +0513000605000000052c0300000007000517000005150000051503000000070005380000 +0515030000000700053500000515030000000700053500000515030000000700051d0000 +0501000005160300000005090402020000000400070004020509070005170002052d0000 +052c03000000070005180000052b030000000700054f030000000700054c030000000700 +054c030000000700051c0000051a03000000050904020200000004000700040205090700 +05760300000007000545030000000700054f030000000700054c030000000700054c0300 +000007000538030000000509040202000000040007000402050907000576030000000700 +0545030000000700054f030000000700054c030000000700054c03000000070005380300 +000005090402020000000400070004020509070005000376000007000500034500000700 +0500034f000007000500034c000007000500034c00000700050003380000050904020200 +0000040007000402050900ff00f1050904020200000004000700040205ff05ff05050402 +0200000004000700040205ff05ff050504020200000004000700040205ff05ff05050402 +0200000004000700040205ff05ff050504020200000004000700040205ff05ff05050402 +02000000040007000402050903ff03f107000508040202000000040007000402050907ff +07f2050804020200000004000700040205ff05ff050504020200000004000700040205ff +05ff050504020200000004000700040205ff05ff050504020200000004000700040205ff +05ff050504020200000004000700040205ff05ff050504020200000004000700040205ff +05ff050504020200000004000700040205ff05ff050504020200000004000700040205ff +05ff05050402020000000400070004020511000005010000050b00000505000005360007 +05000004050200000503000005010005050a00020501000005ff05740402020000000400 +070004020511000005010000050b00000505000005350000050300000503000005030000 +050100000503000005010000050e0000050200000501000005ff05730402020000000400 +07000402050b000105000000050000020500000005010000050800000500000105020000 +050000010503000205010000050300000507000005000001050300020501000005020000 +0502000005050000050300000503000005030000050100000503000005010000050e0000 +050200000501000005ff0573040202000000040007000402050a00000501000105010000 +050100000500000005090001050100000501000105010000050100000502000005010000 +050100000508000105010000050100000502000005000000050200000502000005040000 +050400000503000005030000050100000503000005010000050e00000502000005020000 +0501000005ff056f040202000000040007000402050a0000050200000501000005010001 +050a00000502000005010000050200000501000005020000050200010509000005020000 +050100000502000005010000050100000501000005050000050400000503000405020000 +050300000501000505090000050200000502000005ff0572040202000000040007000402 +050a0000050200000501000005010001050a000005020000050100000502000005010000 +050200000502000105090000050200000501000405010000050100000501000005050000 +050400000503000005020000050200000503000005010000050e00000502000005020000 +05ff0572040202000000040007000402050a000005020000050100000501000005000000 +050900000502000005010000050200000501000005020000050100000501000005080000 +050200000501000005050000050000000500000005000000050500000504000005030000 +05030000050100000503000005010000050e0000050200000502000005ff057204020200 +0000040007000402050a0000050100010501000005010000050100000508000005020000 +050100010501000005010000050200000500000005030000050700000502000005010000 +050200000502000005020000050600000504000005030000050300000501000005030000 +05010000050e0000050200000502000005ff0572040202000000040007000402050b0001 +050000000501000105000000050200000507000005020000050100000500000105030002 +050100000503000005070000050200000502000205030000050200000506000005040000 +050300000503000005020003050200050502000005060002050300000501000005ff056f +040202000000040007000402050e0000054f000005210000050c00000502000005ff056f +040202000000040007000402050a00000502000005090006051a0006051c000005200000 +050d00000501000005ff0570040202000000040007000402050b000205510000052d0000 +05ff057404020200000004000700040205ff05ff05050402020000000400070004020509 +07510000051707200000052b072a0000052807270000052407300000052f071200000529 +040202000000040007000402050907000550000005170700051f0000052b070005290000 +052807000526000005240700052f0000052f070005110000052904020200000004000700 +040205090700054f0300000005170700051e03000000052b070005280300000005280700 +05250300000005240700052e03000000052f070005100300000005290402020000000400 +0700040205090700054f0300000005170700051e03000000052b07000528030000000528 +070005250300000005240700052e03000000052f07000510030000000529040202000000 +04000700040205090700054f0300000005170700051e03000000052b0700052803000000 +0528070005250300000005240700052e03000000052f0700051003000000052904020200 +000004000700040205090700054f0300000005170700051e03000000052b070005280300 +00000528070005250300000005240700052e03000000052f070005100300000005290402 +02000000040007000402050907000509000005010000050b0000052e0000050403000000 +051707000504000005000000051603000000052b070005020000050c0000050100000513 +030000000528070005010006050000040502000005030000050100050505030000000524 +07000502000505040000050400000506000305020005050503000000052f070005030002 +050100000506030000000529040202000000040007000402050907000509000005010000 +050b0000052e0000050403000000051707000503000005010000051603000000052b0700 +05020000050c000005010000051303000000052807000504000005030000050300000501 +00000503000005010000050a030000000524070005020000050800000500000005030000 +050500000503000005010000050a03000000052f07000502000005020000050100000505 +030000000529040202000000040007000402050907000503000105000000050000020500 +000005010000050800000500000105030002050100000503000005070000050000010503 +000205030002050200000501000005010300000005170700050300000501000005000001 +050300020501000005030000050403000000052b07000502000005000001050200000502 +000005000005050100020502000005000001050603000000052807000504000005030000 +05030000050100000503000005010000050a030000000524070005020000050800000500 +0000050300000505000005060000050a03000000052f0700050200000502000005010000 +050503000000052904020200000004000700040205090700050200000501000105010000 +050100000500000005090001050100000501000005020000050100000501000005080001 +050100000501000005020000050100000502000005010000050000000502030000000517 +070005020000050200010501000005010000050200000501000005010000050503000000 +052b07000502000105010000050100000502000005010000050100000501000005020000 +050100010501000005050300000005280700050400000503000005030000050100000503 +000005010000050a03000000052407000502000005070000050200000502000005060001 +05040000050a03000000052f070005020000050200000502000005010000050103000000 +05290402020000000400070004020509070005020000050200000501000005010001050a +000005020000050100000502000005020001050900000502000005050000050100000505 +000105030300000005170700050200000502000005020000050100000502000005020001 +050603000000052b07000502000005020000050100000502000005010000050100000501 +000005020000050100000502000005050300000005280700050400000503000405020000 +050300000501000505050300000005240700050200040503000005020000050200000508 +000105020005050503000000052f07000502000005020000050200000504030000000529 +0402020000000400070004020509070005020000050200000501000005010001050a0000 +050200000501000005020000050200010509000005020000050200030501000005050001 +050303000000051707000502000005020000050200000501000005020000050200010506 +03000000052b070005020000050200000501000005020000050100000501000005010000 +050200000501000005020000050503000000052807000504000005030000050200000502 +00000503000005010000050a0300000005240700050200000507000405020000050a0000 +05010000050a03000000052f070005020000050200000502000005040300000005290402 +020000000400070004020509070005020000050200000501000005010000050000000509 +000005020000050100000502000005010000050100000508000005020000050100000502 +000005010000050500000500000005020300000005170700050200000502000005020000 +05010000050200000501000005010000050503000000052b070005020000050200000501 +000005020000050100000501000005010000050200000501000005020000050503000000 +05280700050400000503000005030000050100000503000005010000050a030000000524 +070005020000050600000504000005010000050500000503000005010000050a03000000 +052f07000502000005020000050200000504030000000529040202000000040007000402 +050907000502000005010001050100000501000005010000050800010501000005010000 +050200000500000005030000050700010501000005010000050200000501000005020000 +050100000501000005010300000005170700050200000502000105010000050100000502 +00000500000005030000050403000000052b070005020001050100000501000005010001 +050100000501000005010000050200000501000005020000050503000000052807000504 +00000503000005030000050100000503000005010000050a030000000524070005020000 +050600000504000005010000050500000503000005010000050a03000000052f07000502 +000005020000050200000504030000000529040202000000040007000402050907000503 +000105000000050100010500000005020000050700000500000105030002050100000503 +000005070000050000010503000205000000050100020502000005020000050003000000 +051707000502000005020000050000010503000205010000050300000501000005010300 +0000052b0700050200000500000105030001050000000501000105000001050100020502 +000005020000050200000501030000000528070005040000050300000503000005020003 +050200050502000005010300000005240700050200000506000005040000050100040502 +00030502000505020000050103000000052f070005030002050300000501000005010300 +000005290402020000000400070004020509070005060000052c00000519030000000517 +07000503000005160000050103000000052b070005250000050103000000052807000522 +000005010300000005240700052b0000050103000000052f070005090000050200000501 +030000000529040202000000040007000402050907000502000005020000050900060513 +000605000000051903000000051707000503000005150000050203000000052b07000524 +0000050203000000052807000521000005020300000005240700052a0000050203000000 +052f07000509000005010000050203000000052904020200000004000700040205090700 +05030002052d00000519030000000517070005040000051803000000052b070005280300 +00000528070005250300000005240700052e03000000052f070005080000050603000000 +052904020200000004000700040205090700054f0300000005170700051e03000000052b +07000528030000000528070005250300000005240700052e03000000052f070005100300 +0000052904020200000004000700040205090700054f0300000005170700051e03000000 +052b07000528030000000528070005250300000005240700052e03000000052f07000510 +030000000529040202000000040007000402050907000500034f0000051707000500031e +0000052b070005000328000005280700050003250000052407000500032e0000052f0700 +05000310000005290402020000000400070004020509005205170021052b002b05280028 +05240031052f001305290402020000000400070004020509075100000751000007510000 +075100000751000007510000050904020200000004000700040205090700055000000700 +055000000700055000000700055000000700055000000700055000000509040202000000 +04000700040205090700054f030000000700054f030000000700054f030000000700054f +030000000700054f030000000700054f0300000005090402020000000400070004020509 +0700054f030000000700054f030000000700054f030000000700054f030000000700054f +030000000700054f03000000050904020200000004000700040205090700054f03000000 +0700054f030000000700054f030000000700054f030000000700054f030000000700054f +03000000050904020200000004000700040205090700054f030000000700054f03000000 +0700054f030000000700054f030000000700054f030000000700054f0300000005090402 +02000000040007000402050907000509000005010000050b0000052e0000050403000000 +0700051d000005000000052e03000000070005160000050c000005010000052603000000 +07000516000605000004050200000503000005010005051a030000000700051600060500 +0004050200000503000005010005051a0300000007000523000205010000052503000000 +0509040202000000040007000402050907000509000005010000050b0000052e00000504 +030000000700051c000005010000052e03000000070005160000050c0000050100000526 +030000000700051900000503000005030000050100000503000005010000051f03000000 +0700051900000503000005030000050100000503000005010000051f0300000007000522 +000005020000050100000524030000000509040202000000040007000402050907000503 +000105000000050000020500000005010000050800000500000105030002050100000503 +00000507000005000001050300020503000205020000050100000501030000000700051c +00000501000005000001050300020501000005030000051c030000000700051600000500 +000105020000050200000500000505010002050200000500000105190300000007000519 +00000503000005030000050100000503000005010000051f030000000700051900000503 +000005030000050100000503000005010000051f03000000070005220000050200000501 +000005240300000005090402020000000400070004020509070005020000050100010501 +000005010000050000000509000105010000050100000502000005010000050100000508 +000105010000050100000502000005010000050200000501000005000000050203000000 +0700051b0000050200010501000005010000050200000501000005010000051d03000000 +070005160001050100000501000005020000050100000501000005010000050200000501 +000105010000051803000000070005190000050300000503000005010000050300000501 +0000051f030000000700051900000503000005030000050100000503000005010000051f +030000000700052200000502000005020000050100000520030000000509040202000000 +0400070004020509070005020000050200000501000005010001050a0000050200000501 +000005020000050200010509000005020000050500000501000005050001050303000000 +0700051b00000502000005020000050100000502000005020001051e0300000007000516 +000005020000050100000502000005010000050100000501000005020000050100000502 +000005180300000007000519000005030004050200000503000005010005051a03000000 +07000519000005030004050200000503000005010005051a030000000700052200000502 +000005020000052303000000050904020200000004000700040205090700050200000502 +00000501000005010001050a000005020000050100000502000005020001050900000502 +00000502000305010000050500010503030000000700051b000005020000050200000501 +00000502000005020001051e030000000700051600000502000005010000050200000501 +000005010000050100000502000005010000050200000518030000000700051900000503 +000005020000050200000503000005010000051f03000000070005190000050300000502 +0000050200000503000005010000051f0300000007000522000005020000050200000523 +030000000509040202000000040007000402050907000502000005020000050100000501 +000005000000050900000502000005010000050200000501000005010000050800000502 +000005010000050200000501000005050000050000000502030000000700051b00000502 +00000502000005010000050200000501000005010000051d030000000700051600000502 +000005010000050200000501000005010000050100000502000005010000050200000518 +030000000700051900000503000005030000050100000503000005010000051f03000000 +0700051900000503000005030000050100000503000005010000051f0300000007000522 +000005020000050200000523030000000509040202000000040007000402050907000502 +000005010001050100000501000005010000050800010501000005010000050200000500 +000005030000050700010501000005010000050200000501000005020000050100000501 +00000501030000000700051b000005020001050100000501000005020000050000000503 +0000051c0300000007000516000105010000050100000501000105010000050100000501 +000005020000050100000502000005180300000007000519000005030000050300000501 +00000503000005010000051f030000000700051900000503000005030000050100000503 +000005010000051f03000000070005220000050200000502000005230300000005090402 +020000000400070004020509070005030001050000000501000105000000050200000507 +000005000001050300020501000005030000050700000500000105030002050000000501 +000205020000050200000500030000000700051b00000502000005000001050300020501 +000005030000050100000519030000000700051600000500000105030001050000000501 +000105000001050100020502000005020000050200000514030000000700051900000503 +000005030000050200030502000505020000051603000000070005190000050300000503 +000005020003050200050502000005160300000007000523000205030000050100000520 +0300000005090402020000000400070004020509070005060000052c0000051903000000 +0700051c0000051600000519030000000700053900000514030000000700053700000516 +030000000700053700000516030000000700052900000502000005200300000005090402 +020000000400070004020509070005020000050200000509000605130006050000000519 +030000000700051c000005150000051a0300000007000538000005150300000007000536 +000005170300000007000536000005170300000007000529000005010000052103000000 +05090402020000000400070004020509070005030002052d00000519030000000700051d +00000530030000000700054f030000000700054f030000000700054f0300000007000528 +0000052503000000050904020200000004000700040205090700054f030000000700054f +030000000700054f030000000700054f030000000700054f030000000700054f03000000 +050904020200000004000700040205090700054f030000000700054f030000000700054f +030000000700054f030000000700054f030000000700054f030000000509040202000000 +040007000402050907000500034f000007000500034f000007000500034f000007000500 +034f000007000500034f000007000500034f000005090402020000000400070004020509 +00ff00f1050904020200000004000700040205ff05ff0505040202000000040007000402 +05ff05ff050504020200000004000700040205ff05ff0505040202000000040007000402 +05ff05ff050504020200000004000700040205ff05ff0505040202000000040007000402 +050903ff03f107000508040202000000040007000402050907ff07f20508040202000000 +04000700040205ff05ff050504020200000004000700040205ff05ff0505040202000000 +04000700040205ff05ff050504020200000004000700040205ff05ff0505040202000000 +04000700040205ff05ff050504020200000004000700040205f3071b000005f404020200 +000004000700040205f30700051a000005f404020200000004000700040205f307000519 +0300000005f404020200000004000700040205f3070005190300000005f4040202000000 +04000700040205f3070005190300000005f404020200000004000700040205f307000519 +0300000005f404020200000004000700040205f3070005040003050a0000050100000501 +0300000005f404020200000004000700040205f307000503000005030000050c00000501 +0300000005f404020200000004000700040205f307000502000005050000050100000502 +0000050100000500000205000300000005f404020200000004000700040205f307000502 +0000050500000501000005020000050100000501000005010300000005f4040202000000 +04000700040205f307000502000005050000050100000502000005010000050100000501 +0300000005f404020200000004000700040205f307000502000005020000050100000501 +000005020000050100000501000005010300000005f404020200000004000700040205f3 +070005020000050300000500000005010000050200000501000005010000050103000000 +05f404020200000004000700040205f30700050300000503000005020000050100010501 +00000501000005010300000005f404020200000004000700040205f30700050400030500 +00000502000105000000050100000501000105000300000005f404020200000004000700 +040205f3070005190300000005f404020200000004000700040205f30700051903000000 +05f404020200000004000700040205f3070005190300000005f404020200000004000700 +040205f3070005190300000005f404020200000004000700040205f30700051903000000 +05f404020200000004000700040205f3070005000319000005f404020200000004000700 +040205f3001c05f404020200000004000700040205ff05ff050504020200000004000700 +040205ff05ff050504020200000004000700040205ff05ff050504020200000004000700 +040205ff05ff050504020200000004000700040205ff05ff050504020200000004000700 +040205ff05ff050504020200000004000700040205ff05ff050504020200000004000700 +040205ff05ff050504020200000004000700040205ff05ff050504020200000004000700 +040205ff05ff05050402020000000400070004ff04ff040b020000000400070004ff04ff +040b020000000400070004ff04ff040b02000000040002ff02ff020d00ff00ff0010 +%%EndData +end +%%PageTrailer +%%Trailer +%%BoundingBox: 0 0 358 159 +%%EOF diff --git a/docs/tutorial/gtk_tut_packbox1.jpg b/docs/tutorial/gtk_tut_packbox1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b7b4ce383a4428da792909031eeef38fc90333cd GIT binary patch literal 25975 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 literal 0 HcmV?d00001 -- 2.30.2